import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// import vueDevTools from 'vite-plugin-vue-devtools'

// 引入自动引入HOOK插件
import AutoImport from "unplugin-auto-import/vite"

// 引入Vue组件自动引入插件
import Components from 'unplugin-vue-components/vite';

// 引入自动生成路由插件
import Pages from 'vite-plugin-pages'

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    // vueDevTools(),

    // 配置自动引入HOOK
    AutoImport({
      imports: [
        'vue',
        'vue-router',
        'pinia',
      ],
      dts: "./src/auto-imports.d.ts", // 生成全局自动引入配置文件
    }),

    // 配置自动引入vue组件
    Components({
      dirs: ['src/components'], // 指定组件位置
      extensions: ['vue'],
      dts: './src/components.d.ts' // 配置文件生成位置
    }),

    // 配置自动生成路由
    Pages({
      dirs: 'src/views', // 需要生成路由的组件目录
      exclude: ['**/components/*.vue'], // 排除在外的目录，即所有 components 目录下的 .vue 文件都不会生成路由
    }),

  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    },
  },

  server: {
    // 开发服务器的配置
    // 反向代理
    proxy: {
      '/shop': {
        // target: 'http://www.fastadmin.com/shop', // 反向代理的目标地址（本地）
        target: 'https://zj.galen.asia/shop', // 反向代理的目标地址（线上服务器）
        changeOrigin: true, // 允许跨域
        // 替换掉shop前缀 防止多个shop地址
        rewrite: (path) => path.replace(/^\/shop/, ''),
      },
    }
  },

})
